﻿using Microsoft.ExtendedReflection.Logging;
using Microsoft.ExtendedReflection.Utilities;

namespace MolesVS2012.Host
{
    internal static class MolesVsHostEnvironmentSettings
    {
        public static readonly EnvironmentSetting<int> StackSize = EnvironmentSettings.AsInt32("molesvshost_stack_size", 16, "Desired stack size in MB for exploration thread");
        public static readonly EnvironmentSetting<string> ServerChannel = EnvironmentSettings.AsString("molesvshost_serverchannel", "server channel to communicate to host");
        public static readonly EnvironmentSetting<string> ClientID = EnvironmentSettings.AsString("molesvshost_clientid", "client id used for serialization");
        public static readonly EnvironmentSetting<bool> Diagnostic = EnvironmentSettings.AsBool("molesvshost_diagnostic", "execute in diagnostic mode");
        public static readonly EnvironmentSetting<LogLevel> Verbosity = EnvironmentSettings.AsEnum<LogLevel>("molesvshost_verbosity", LogLevel.Error, "logger verbosity");
        public static readonly EnvironmentSetting<bool> CreateWindow = EnvironmentSettings.AsBool("molesvshost_createwindow", "open a new console window for the host process");
        public static readonly EnvironmentSetting<bool> BreakOnAgentStart = EnvironmentSettings.AsBool("molesvshost_breakonagentstart", "breaks on the agent start");
        public static readonly EnvironmentSetting<bool> BreakOnHostStart = EnvironmentSettings.AsBool("molesvshost_breakonhoststart", "breaks on the host start");
        public static readonly EnvironmentSetting<int> ConnectionTimeOut = EnvironmentSettings.AsInt32("molesvshost_connectiontimeout", 20, "connection time out in seconds");
        public static readonly EnvironmentSetting<string> Driver = EnvironmentSettings.AsString("molesvshost_driver", "driver process for the host (typically a debugger)");
        public static readonly EnvironmentSetting<int> DebuggerTimeOut = EnvironmentSettings.AsInt32("molesvshost_debugger_timout", 15, "time out in seconds for attaching the debugger");
        public static readonly EnvironmentSetting<string> SilverlightVersion = EnvironmentSettings.AsString("molesvshost_silverlight_version", "the Silverlight version to resolve assemblies from");

        static MolesVsHostEnvironmentSettings()
        {
        }
    }
}
